Kotlin & Flutter ListView
元件使用方式
比較 Kotlin & Flutter ListView
元件使用方式差異
ListView
元件:Android 官方說明
ListView
元件簡要建立步驟:xml
檔案:
layout
放入 ListView
元件ListView
每個 item 的 layout
Adapter
檔案:控制傳給 ListView
的 item 資料和 layout
,以及監聽點擊事件。Activity
/ Fragment
:設定 Adapter
給 ListView
,就完成了。如果
ListView
的 itemlayout
要更多變化(EX: 加圖片或按鈕之類的就要用RecyclerView
)
ListView
元件:Flutter 官方說明
Flutter 的
ListView
元件主要只會分需要顯示的資料數量來選擇使用的方法,ListView
元件的 item 的layout
都可以加圖片或按鈕。
ListView
建立方法:建立方法 | 適用時機 |
---|---|
ListView |
較少資料 |
ListView.builder |
多到爆炸的資料 |
ListView.separated |
固定長度的資料且要用分隔線分隔 |
ListView.custom |
自己調整頁面看不到的資料要怎麼處理 |
ListView
元件簡要建立步驟:StatefulWidget
元件中,依需求使用其中一種 ListView
建立方法,傳入 ListView
item 相關必要相關參數,這樣就完成了。補充:
ListView(children:List<Widget>[])
較少資料適用(如頁面不滑動即可顯示所有資料的時候)原因:
因為無論是不是這一頁看得到的資料,會把所有資料都套用到元件 item,所以建立元件時會比較花時間,推薦使用在少少資料的時候。
ListView.builder
多到爆炸的資料適用原因:
因為只把這一頁看得到的資料套用到元件item,會比較省時間。
ListView
child 元件
(每個 item) lifecycle :
滑到看不到就被 destroyed,滑回來又被 create。
如果要保存頁面尚不會顯示的元件 item 資料,可由以下方法儲存資料:
- 存資料到其他暫存位置
- 設定
KeepAlive
保存child 元件
狀態child 元件
使用AutomaticKeepAlive
元件 會自動保存child 元件
狀態
ListView
元件用法差異比較項目 | Kotlin | Flutter |
---|---|---|
元件名稱 | ListView |
ListView |
元件建立方法 | 透過 xml layout 設定畫面排版 & 建立 Adapter 監控 ListView item 資料與觸發事件 |
依需要顯示的資料數量與顯示畫面要求,由四個元件建立方法選一個,選完傳入建立方法所需參數 |
是否有 layout 限制 | 有,要多變化的 layout 要改用 RecyclerView 元件 |
無 |